查看原文
其他

如何从0到1用Excel实现数值设计?MMORPG职业篇

The following article is from 腾讯游戏学院 Author suelin

前言

经常有小伙伴说自己不是数值策划,又很希望能够试着做一些数值设计。数值文章也看了许多,道理几乎都懂,但有些不知从何下手。这里想通过视频的方式,分享具体如何使用Excel实现数值设计,包括Excel函数的运用,简单的VBA代码书写,以及MMORPG游戏的数值从0到1的制作全过程。这个系列会分为多篇文章来写,本篇的内容是《职业数值设计》。


二、角色基础模型设计


1

必须做出的预设


(1)设定游戏的角色等级(如果游戏有等级概念):假设为30级;

(2)站桩输出pvp的时间:假设为20秒。

2

角色基础模型的制作(写在前面的期望)


(1)伤害值初始数值是两位数;

(2)希望每成长一级等级,玩家的攻击、防御、伤害值都有成长;

(3)技能伤害百分比成长缓慢;

(4)技能数值成长相对正常;

(5)两个角色裸体对砍20秒。

3

一段简单的角色数值模型


(1)攻防公式(此公式只作为演示,实际以游戏需要为准):


(攻击-防御)*(1+技能伤害百分比)+技能数值

(2)运用到的公式(y=ax+b的一元一次函数)


攻击=参数1*(等级-1)+参数2


(3)运用到的Excel使用函数:Round(),对带小数点的数值进行取整。


具体的操作视频如下:

https://v.qq.com/txp/iframe/player.html?vid=m07347yfnkx&width=500&height=375&auto=0

4

视频中提到的第二种模型


根据经验和其他游戏的总结确定各数值投放比,简称投放比数值模型,在PVP竞技场时,对玩家的攻防血再进行数值修正。


假设,攻击:防御:血量 =1:X:Y,数值模型如下:



三、职业数值设计


几乎所有的RPG网游都有职业设定,对职业数值进行差异化设计。与此同时,除攻击、防御、血量二级属性外,也加入了如力量、敏捷、智力、体力等一级属性等概念,丰富游戏数值内容。其中,职业的差异化设计更多的是由技能设计体现,职业的属性数值差异化是锦上添花。

1

预设


(1)假定游戏有三个职业,战士、法师、盗贼。

(2)假设游戏包含:

一级属性:力量、智力、敏捷、体力。

二级属性:攻击、防御、暴击、血量、魔法。


2

确定各职业的属性关系


力量:影响战士的攻击、全部职业的生命(影响系数不同)。

智力:影响法师的攻击、全部职业的魔法上限(影响系数不同)。

敏捷:影响盗贼的攻击、全部职业的暴击等级,暴击等级可以转换为暴击率(影响系数不同)。

体力:影响全部职业的生命值(影响系数不同)。

属性设计思路


 A.用攻击来决定每种职业追求哪种一级属性。

由于各职业需要有属性差异,过于复杂的属性结构不宜理解,所以采用了每个职业有一个主属性,主属性影响每个职业的攻击力,让玩家追求属性时能够抓住重点,有的放矢。尽量避免一个二级属性被多个一级属性影响,这样的设计也更容易把控。

B.遵循大家都一样的原则,是最简单直接的平衡性模型。

每个职业除攻击和通用一级属性外,被一级属性影响的数量一定相同。如,战士的力量只影响除攻击外的一个防御属性,智力只影响一个魔法上限,敏捷只影响一个暴击等级,体质是通用属性,可以适量影响多条属性。

基于以上,建立一个职业属性关系表:


3

各职业的属性数值设计


(1)以基础角色数值模型为原型,乘以各种系数变形出只有二级属性的各职业角色数值模型,以下是各职业详细数值。

(点击上图,可放大查看)


https://v.qq.com/txp/iframe/player.html?vid=i0734hpukkp&width=500&height=375&auto=0


(2)反推各职业的一级属性

很多情况下,属性面板是不会直接显示攻击、防御这些属性,只会显示力量、智力、敏捷、体质这些属性,用比较简单的乘除法就可以转换这些属性。

1点力量=1.5点战士攻击力、全职业防御(战士0.55,盗贼0.5,法师0.49)

1点智力=1.5点法师攻击力、全职业魔法值(职业不同系数也不同,魔法值的设定主要与技能循环有关,暂不在本文体现)

1点敏捷=1.5点盗贼攻击力、全职业暴击等级(职业不同系数也不同,敏捷转化为暴击等级与其他属性类似的方式就可以解决)

其中暴击等级需要通过特定公式转换为暴击率,在后面具体写出计算方法。

1点体力=全职业生命(战士90,盗贼80,法师77)

以下是已经调整好的一级属性数值:


https://v.qq.com/txp/iframe/player.html?vid=i0734hpukkp&width=500&height=375&auto=0

(3)使用(2)换算过的各属性转换系数,重新梳理各职业最终的二级属性及战斗节奏,进行数值校验。

战斗节奏与最初设计的基础模型可能存在偏差(标红处),但对于整体来说影响不大,可以忽略。


通过一级属性转换的防御、血量,一定和原来的预设是不一样的,所以我们需要做反验算和验证的过程,我们先把力量、敏捷、智力这些一级属性分别链接到二级属性表里各个职业对应的位置,使用“=”号即可。然后计算实际的二级属性,攻击是用力量乘以攻击系数,防御就是乘以防御系数,血量就是乘以血量系数,得到各个职业的攻击、防御和血量之后,用伤害与各个职业的血量进行对比,得出战斗时长。


我做了一个小小的预设,希望1V1的时候,战士能稍稍领先盗贼,盗贼能稍稍领先法师,那么战士打盗贼的时长要比盗贼打战士的时长要短,要能更快打死对方,我的系数调整之后,基本是符合预期的。


如果我们在验证的过程中,数值有偏差怎么办?要么就提升战士的攻击力,要么减少盗贼的血量,通过系数来调整。


4

暴击率计算


角色裸装暴击率控制在0%~3%左右比较保险。


(1)暗黑三式的暴击率计算


各种“率”的上限为100%,一般RPG网游成长周期比较久,投放百分之零点几又会被觉得太奇怪,一般都需要通过“暴击等级”、“致命”等这些中间值进行转换。
暗黑3的计算方式如下(我们可以把暗黑三的敏捷改为暴击等级,思路是一样的):




假设:玩家有600敏捷。


100 * 0.1% = 10.00% (0-100敏捷区间)


400 * 0.025%= 10.00% (100-500敏捷区间)


100 * 0.02%= 2.00% (500-1000敏捷区间)


敏捷提供的闪避总计:

(10.00%+10.00%+2.00%)= 22%


(2)DNF给出的另一个思路

DNF的伤害计算中,黄字和爆伤取的是所有装备中的最大值,这种计算方式是否可以用作游戏中的暴击率计算,也是可以来考虑考虑的事情。

小结:


当暴击率达到40%,给玩家的直观感受接近刀刀暴击/闪避,暴击是危险属性,需谨慎投放。可以通过“捆绑”投放(暴击和暴击抵抗同步投放)、边际效益递减(暗黑三闪避率计算)的方式投放。


四、结语


总而言之,研发阶段的数值设计是一个不断的拍脑门、反推、调整、重新计算、测试、再调整的过程,看似比较烦碎,但在不断的实践以及玩家的测试验证,都可以总结出适合自己习惯使用的数值方法论。


作者suelin系腾讯互动娱乐高级游戏策划


今日推荐  

·算法揭秘!谈老虎机类游戏的数值设计(一)

·立体的战斗——浅谈《精灵宝可梦》系列的战斗系统

·腾讯游戏学院首次亮相ChinaJoy 向全球征集创意游戏项目

↓↓↓点击阅读原文,了解更多。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存